首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将金额格式化为数据库格式

将金额格式化为数据库格式
EN

Stack Overflow用户
提问于 2012-05-22 00:56:25
回答 4查看 77关注 0票数 2

嗨,我有一个关于格式化金额的问题。

在我的输入表单上,用户可以添加和编辑格式化的金额。由于这是一个多语言程序,用户可以指定自己的格式,因此没有固定的模式。

示例:

代码语言:javascript
复制
250.000
250,000
250.000,00  
250,000.00

遗憾的是,在将它们存储到数据库中之前,我必须“取消格式化”它们,否则MySQL会将我的数字理解为浮点数,反之亦然。

我该如何克服这个问题呢?有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-22 18:52:02

好了,我终于做到了,所以我将分享我的解决方案

首先,我使用Mootools在to user输入时格式化输入字段。

然后我移动了服务器端。

格式选项保存在我的应用程序中,所以这是代码

代码语言:javascript
复制
//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);

基本上,我去掉了除小数点分隔符之外的所有分隔符,然后用标准分隔符(.)替换它。

它就像一种护身符。

票数 0
EN

Stack Overflow用户

发布于 2012-05-22 00:59:17

您可以选择允许用户输入他们想要的内容,在这种情况下,您必须进行清理(并在小数符号的情况下进行转换),就像您在这里猜测的那样。或者,您可以限制它们输入的内容,并强制它们省略数千个分隔符。

票数 0
EN

Stack Overflow用户

发布于 2012-05-22 01:07:31

  1. ,您必须检查客户端的本地化,并相应地以这种方式解析数据。coz 2,500.00 = 2.500,00。这取决于位置。
  2. 不允许用户输入",“。
  3. 有一个单独的框,允许用户输入小数点后的内容。
  4. 让框中预先填充0.00。告诉用户这是格式。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10689365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档