Первый импорт NumberFormat
. Затем добавьте это:
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
Это даст вам два десятичных знака и пометит знак доллара, если он имеет дело с валютой.
import java.text.NumberFormat;
public class Payroll
{
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
int hoursWorked = 80;
double hourlyPay = 15.52;
double grossPay = hoursWorked * hourlyPay;
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
System.out.println("Your gross pay is " + currencyFormatter.format(grossPay));
}
}
Интерфейс передачи сообщений (MPI) ( http://www-unix.mcs.anl.gov/mpi/ ) является хорошо масштабируемой и устойчивой библиотекой для параллельного программирования, приспособленного исходный к C, но теперь доступный в нескольких разновидностях http://en.wikipedia.org/wiki/Message_Passing_Interface#Implementations . В то время как библиотека не представляет новый синтаксис, она предоставляет протокол связи для организации совместного использования данных между стандартными программами, которые parallelizable.
Традиционно, это используется в больших кластерных вычислениях, а не в единой системе для параллелизма, хотя многоядерные системы могут, конечно, использовать в своих интересах эту библиотеку.
Другим интересным решением проблемы параллельного программирования является OpenMP, который является попыткой обеспечить портативное расширение на различных платформах для обеспечения подсказок компилятору о том, какие разделы кода легко parallelizable.
, Например ( http://en.wikipedia.org/wiki/OpenMP#Work-sharing_constructs ):
#define N 100000
int main(int argc, char *argv[])
{
int i, a[N];
#pragma omp parallel for
for (i=0;i<N;i++)
a[i]= 2*i;
return 0;
}
существуют преимущества и недостатки обоим, конечно, но первый, оказалось, был чрезвычайно успешен в академии и других тяжелых приложениях научных вычислений. YMMV.
у Ulf Wiger недавно было большое сообщение по этой теме - вот свойства, которые он определяет как требуется, прежде чем можно будет назвать что-то "Параллелизмом Стиля Erlang":
Номер 2 выше является самым трудным поддерживать в VMs и реализациях языка, которые не были первоначально разработаны для параллелизма. Это не должно пробивать реализации параллелизма Erlang-выхода в другие языки, но много значения Erlang прибывает из способности создать миллионы из процессов, который довольно чертовски труден, если абстракция процесса имеет отношения 1-1 с потоком уровня ОС или процессом. Ulf имеет намного больше на этом в ссылке выше.
Mike Rettig создал библиотеку.NET, названную Retlang и порт Java под названием Jetlang, который вдохновлен моделью параллелизма Erlang.
Параллелизм Microsoft и Время выполнения Координации для.NET.
CCR подходит для прикладной модели, которая разделяет компоненты на части, которые могут взаимодействовать только через сообщения. Компоненты в этой образцовой потребности означают координировать между сообщениями, соглашением со сложными сценариями отказа, и эффективно иметь дело с асинхронным программированием.
Scala поддерживает агентов. Но я не назвал бы scala намеренно подобным Erlang.
, Тем не менее, scala абсолютно стоит смотреть!
Также kilim является библиотекой для Java, который приносит передачу сообщений стиля erlang / агенты на язык Java.
Для Python можно попытаться использовать модуль обработки .
Предупреждение: бесстыдный разъем!
я разработал библиотеку для этого вида передачи сообщений в Haskell: Erlang-style Distributed Haskell .
Volker
Microsoft's Not-Production-Ready Answer to Erlang: Microsoft Axum
If you are using Ruby, take a look at Revactor: [http://revactor.org/][1]
Revactor is an Actor model implementation for Ruby 1.9 built on top of the Rev high performance event library. Revactor is primarily designed for writing Erlang-like network services and tools.
Take a look at this code sample:
myactor = Actor.spawn do
Actor.receive do |filter|
filter.when(:dog) { puts "I got a dog!" }
end
end
Revactor only runs on Ruby 1.9. I believe the author of the library has discontinued maintaining it but the documentation on their site is very good.
You might also want to take a look at Reia: a ruby-like scripting language built on top of the Erlang VM. Reia is the new project of the creator of Revactor: Tony Arcieri.
JoCaml расширяет OCaml с вычислением соединений для параллельного и распределенного программирования.