逗号作为Java中的小数分隔符

时间:2015-11-09 16:37:18

标签: java string-formatting number-formatting

我想将模式###,00应用于我的大十进制数字,因此','是十进制分隔符,不会使用分组分隔符。

我想获得带有describe模式的数字的字符串表示,所以我执行以下操作:

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(',');
df.setGroupingUsed(false);

DecimalFormat df = new DecimalFormat("###,00", symbols);

但是当我执行下一个操作时:

System.out.println(df.format(new BigDecimal(589555.23)));

输出是589555,我期待589555,23出了什么问题?我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

只需将decimalFormat模式更改为###.00因为在格式模式中,没有与十进制值相关的信息(小数点后),因此十进制值不会显示在格式化的输出中。

symbols.setDecimalSeparator(',');
DecimalFormat df = new DecimalFormat("###.00", symbols);

输出:

System.out.println(df.format(new BigDecimal(589555.23))); //589555,23

答案 1 :(得分:1)

而不是使用","在DecimalFormat中使用"。"

DecimalFormat df = new DecimalFormat("########.##", symbols);

我得到的输出是589555,23

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator(',');


DecimalFormat df = new DecimalFormat("########.##", symbols);
df.setGroupingUsed(false);
System.out.println(df.format(new BigDecimal(589555.23)));

答案 2 :(得分:0)

您可以尝试使用逗号作为小数分隔符的区域设置。例如:

import os
import re
import fileinput
import numpy as np

matrix = np.zeros(shape=(6000,16000))

def dictionary_creation (filepath):
    fileopen = open(filepath, "r")
    dictionary = fileopen.read().split('\n')
    fileopen.close()
    return dictionary


def find_doc_matrix_position (filename):
    regex = re.compile('(\d)_(.*)')
    find_regex = regex.search(file)
    if find_regex:
        pos_doc = int(find_regex.group(1))-1
    return pos_doc

def put_nbdoc_nbword_in_matrix (filename, dictionary, nb_file):
    for line in fileinput.input([filename]):
            line = line.replace("\n", "")
            for w in range(0,len(dictionary)-1):
                split_ = dictionary[w].split('_',1)              
                if line == split_[1]:
#                    print ("nb_file is: "+str(nb_file))                    
#                    print ("nb_word is : "+str(split_[0]))
#                    print ("line is: "+line+" word is: "+split_[1])
#                    print '####'
                    matrix[nb_file,split_[0]] = 1

dictionary = dictionary_creation('C:\\Users\\KP\\Desktop\\FSC_lemmes_sort.txt')

for file in os.listdir('C:\Users\KP\Desktop\FSC_Treetag\out'):
        fin = open(file, 'r')
        filename = file
        nb_file = find_doc_matrix_position(file)
        put_nbdoc_nbword_in_matrix(filename, dictionary, nb_file)

print "this is the final matrix\n"
print matrix