嗨我的格式化数量有问题 在我的输入表单上,用户可以添加和编辑格式化的金额。由于这是一个多语言程序,用户可以指定自己的格式,因此没有固定的模式 示例:
250.000
250,000
250.000,00
250,000.00
可悲的是,在将它们存储到数据库中之前,我必须“取消格式化”它们,否则MySQL会将我的数字理解为浮点数而反之亦然。
我怎样才能克服这一点?有什么想法吗?
答案 0 :(得分:0)
您可以选择允许用户输入他们想要的内容,在这种情况下,您可以进行清理(并在小数符号的情况下进行翻译),正如您在此猜测的那样。或者你可以限制他们输入的内容并强制他们留下千分隔符。
答案 1 :(得分:0)
答案 2 :(得分:0)
答案 3 :(得分:0)
格式选项保存在我的应用程序中,因此这是代码
//get decimal separator from saved params
$dec = $params->get('decimalSep', '.');
//remove any char that's not a number or decimal separator
//(i don't care about thousands sep)
$regex = '#[^0-9-'.preg_quote($dec).']#';
$normalized = preg_replace($regex, '', $price);
$normalized = str_replace($dec, '.', $normalized);
基本上我除掉小数分隔符之外的所有东西,然后用标准的(.
)替换它。
它就像一个魅力。