【问题标题】:php multiply int values seperated by comma and dotphp乘以逗号和点分隔的int值
【发布时间】:2016-04-21 22:03:58
【问题描述】:

在我当前的应用程序中,用户可以在他的帐户上拥有“预付”金额。该值以美分存储。现在,如果用户尝试将资金从一个帐户转移到另一个帐户,他应该能够使用以下值:“1,53”、“1.53”和“1”。现在我需要检查输入的金额是否低于他能够转账的金额。

 if (($request->amount * 100) <= $user->calculateAmount())

函数 $user->calculateAmount() 返回值,例如“351”,代表 3,51 欧元(以美分为单位)。 我知道问题是“,”,使用“。”工作正常,但用户应该能够同时使用两者。有更好的方法还是我需要使用 str_replace()?

【问题讨论】:

    标签: php math int


    【解决方案1】:

    你可以使用这个: http://codepad.org/NW4e9hQH

    目前没有其他方法可以将其解析为浮动。

    【讨论】:

    • 不,我是这么认为的,但后来我测试了它,它落后于,。和(float) $var一样。
    • 嗯,您发布的功能对我来说有点超载。用户可以只输入 (1.53|1,52|1) 之类的值,而不是值本身,而只能以这种样式输入。正则表达式将检查。你有一个没有太多重载但样式短的函数吗?使用 str_replace() 会让它变得很长......
    • 那为什么不简单地 str_replace(',', '.', $var); 这将在 $var 中搜索 , 并将其替换为 .
    • 它适用于意大利符号。计算完后可以调用number_format($result, 5, ',', '')恢复逗号小数分隔符
    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    相关资源
    最近更新 更多