Heim > Backend-Entwicklung > PHP-Tutorial > 遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

WBOY
Freigeben: 2016-06-06 20:16:04
Original
1045 Leute haben es durchsucht

大神看图 我用foreach遍历数组后 对一个价格做处理 用number_format()先将小数转换为一位小数的再用sprintf()给小数的第二位补0

但是问题来了 用foreach赋值的变量 最后输出的值就莫名其妙的成了1.00
但是直接给一个变量赋值一个字符串类型的小数或者浮点型的小数 最后输出就是正常的 我搞不明白了。。。求助
遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

回复内容:

大神看图 我用foreach遍历数组后 对一个价格做处理 用number_format()先将小数转换为一位小数的再用sprintf()给小数的第二位补0

但是问题来了 用foreach赋值的变量 最后输出的值就莫名其妙的成了1.00
但是直接给一个变量赋值一个字符串类型的小数或者浮点型的小数 最后输出就是正常的 我搞不明白了。。。求助
遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

遇到一个莫名奇妙的问题

没明白你什么意思,直接number_format($val, 2)不就行了吗?为什么还要sprintf('%.2f', $str)呢?number_format会自动进行四舍五入的,所以number_format(0.97, 1)的结果是1.0,再sprintf就是1.00,有什么问题么?
如果你是为了去掉千分位的分隔符,可以用 number_format($val, 2, '', '.')这种方式。

1,350.2 和 1350.2 是不一样的吧。

显然跟那个逗号有关系啊

问题解决了,和1,345.23的那个逗号有关系,昨晚只注意数据类型了,忘了那个逗号的问题了
number_format($temp,1,'.','') 就可以完美解决这个问题了

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage