PHP货币采取
回答
$number = str_replace('.','',$number);
str_replace可以工作,但如果他的值是10.3567(例如,平均成本)呢?无论输入是什么,下面的答案(乘以100并且转换为int)都将起作用。 – Fluffeh
如果$ number是一个浮点值,这真的很危险。如果浮点数不能精确地描述该值并且出现几个小数位,会发生什么情况?如果值是'1500.3',会发生什么? –
@Fluffeh,@EmilVikström。我们不能真正解决op **的问题**,因为我们不知道问题是什么。我们所能做的只是回答**问题**。问题是:“如何将10.25转换为1025”,所以答案是使用'str_replace',它可以在这里工作。如果问题不符合问题 – k102
如果货币是float:用100乘以(并把结果到int
)。
$currency = 10.25;
$number = (int)($currency * 100); //1025
请注意,此解决方案将只得到前两个小数保存 - 如果你有一些像10.123
,在3
将简单地没有四舍五入切断。
当处理需要精确的值时(货币处理必须始终准确),应避免浮点算术。 –
你是绝对正确的,但是如果它之前是浮点数,那么你已经有可能被编译出来,因为可能使用它来计算其他东西。如果你想确切地说,在任何地方都要使用实数,并且只是为了显示而使浮点数显示出来 - 但这显然不是这种情况,因为应该没有任何理由退回。 – oezi
但是我们知道这是一个浮动值吗?这可能是一个字符串,在这种情况下,您的解决方案将其转换为浮点数。我认为这是最好的解决方案,如果$货币已经是一个浮动(我几乎发布完全相同的答案),但如果它实际上是一个字符串,你应该做字符串工作。 –
浮点算术是由它的定义不准确。因此,如果它是一个字符串,则不要将该值转换为浮点值,并且如果它是浮点值,则不要将其转换为字符串。
这里是一个函数,它负责检查值类型:
function toCents($value) {
// Strings with a dot is specially handled
// so they won't be converted to float
if (is_string($value) && strpos($value, '.') !== false) {
list($integer, $decimals) = explode('.', $value);
$decimals = (int) substr($decimals . '00', 0, 2);
return ((int) $integer) * 100 + $decimals;
// float values are rounded to avoid errors when a value
// like ".10" is saved as ".099"
} elseif (is_float($value) {
return round($value * 100);
// Other values are strings or integers, which are cast
// to int and multiplied directly.
} else {
return ((int) $value) * 100;
}
}
+1为完整答案:) – k102
$number = str_replace('.','',$number);
和
$number = strtr($number, array('.', ''));
相同的输出,但strtr更好。
- 1. 印度货币的PHP货币格式?
- 2. 简单的货币值,不知道如何采取输入和输出货币
- 3. PHP货币显示
- 4. PHP货币格式
- 5. 获取货币符号在PHP
- 6. PHP弄钱货币价值
- 7. 换算货币从XML + PHP
- 8. PHP数字格式(货币)
- 9. 带货币符号的PHP货币格式
- 10. 收集从geoplugin货币转换器返回的货币 - PHP
- 11. PHP的货币格式不显示货币符号
- 12. 根据货币代码将货币格式设置为货币
- 13. 货币列表与货币符号和货币名称母语
- 14. 货币
- 15. 获取货币数据
- 16. 获取最新货币
- 17. 如何通过货币名称获取货币符号?
- 18. 如何从iphone中的货币代码获取货币符号?
- 19. 从货币代码中提取货币符号Yii
- 20. 根据ISOCountryCode获取货币符号和货币代码
- 21. 从Objective-C中获取货币代码的货币符号
- 22. iOS如何通过货币代码获取货币符号?
- 23. Android货币类别 - 如何获取货币的显示名称?
- 24. Automapper地图(十进制,货币)货币
- 25. 未格式化货币格式货币
- 26. C#格式十进制货币/货币
- 27. 货币符号
- 28. 格式货币
- 29. 转换货币
- 30. 轨AJAX货币
1500.25是浮点还是字符串? –