Ничего себе, существует много вопросов там:
возможно выполнить байт-код (.pyc) файл непосредственно от интерпретатора Python, но я не видел доступных инструментов путаницы байт-кода.
я не знаю ни о ком "все в одном" решении для развертывания, но:
Для Windows Вы могли использовать NSIS ( http://nsis.sourceforge.net/Main_Page ). Проблема здесь состоит в том, что, в то время как OSX / *nix идет с Python, Windows не делает. Если бы Вы не готовы создать двоичный файл с py2exe, я не уверен, что проблемы лицензирования окружили бы распределение среды выполнения Python (не говоря уже о технических).
Вы могли упаковать распределение OS X с помощью формата "пакета", и *ОТКЛОНЯЮТ, имеет свои собственные соглашения для установки программного обеспечения - обычно, "делают установку" сценарием.
Hope, которая была услужлива.
Взгляните на java.text.NumberFormat
. Например:
import java.text.*;
import java.util.*;
public class Test
{
// Just for the sake of a simple test program!
public static void main(String[] args) throws Exception
{
NumberFormat format = NumberFormat.getInstance(Locale.US);
Number number = format.parse("835,111.2");
System.out.println(number); // or use number.doubleValue()
}
}
В зависимости от того, какое количество вы используете, вы можете вместо этого выполнить синтаксический анализ до BigDecimal
. Самый простой способ сделать это, вероятно:
BigDecimal value = new BigDecimal(str.replace(",", ""));
или использовать DecimalFormat
с setParseBigDecimal (true)
:
DecimalFormat format = (DecimalFormat) NumberFormat.getInstance(Locale.US);
format.setParseBigDecimal(true);
BigDecimal number = (BigDecimal) format.parse("835,111.2");
Использовать java.text.DecimalFormat:
DecimalFormat - это конкретный подкласс NumberFormat форматирует десятичный формат числа. Он имеет множество функций разработан, чтобы сделать возможным синтаксический анализ и форматировать числа в любом языковом стандарте, включая поддержку западного, арабского, и индийские цифры. Он также поддерживает различные виды чисел, в том числе целые числа (123), числа с фиксированной точкой (123.4), научная запись (1.23E4), проценты (12%) и валюта сумм (123 доллара). Все это может быть локализовано.
Самый простой - не всегда самый правильный. Вот самый простой вариант:
String s = "835,111.2";
// NumberFormatException possible.
Double d = Double.parseDouble(s.replaceAll(",",""));
Я не стал беспокоиться о локали, так как вы специально заявили, что хотите заменить запятые, поэтому я предполагаю, что вы уже установили себя в качестве локали, где запятая - это разделитель тысяч, а точка - десятичный разделитель. Здесь есть лучшие ответы, если вы хотите правильного (с точки зрения интернационализации) поведения.
Ссылка может содержать более тысячи слов
// Format for CANADA locale
Locale locale = Locale.CANADA;
String string = NumberFormat.getNumberInstance(locale).format(-1234.56); // -1,234.56
// Format for GERMAN locale
locale = Locale.GERMAN;
string = NumberFormat.getNumberInstance(locale).format(-1234.56); // -1.234,56
// Format for the default locale
string = NumberFormat.getNumberInstance().format(-1234.56);
// Parse a GERMAN number
try {
Number number = NumberFormat.getNumberInstance(locale.GERMAN).parse("-1.234,56");
if (number instanceof Long) {
// Long value
} else {
// Double value
}
} catch (ParseException e) {
}