Форматирование числа в html

Форматирование числа в html

Дано число,и задача состоит в том,чтобы отформатировать номер HTML-элемента в виде валюты,используя CSS и немного JavaScript.Невозможно выполнить задачу с помощью чистого CSS.Немного JavaScript необходимо для разбора числа,чтобы добавить запятые.

Допускает ли число типа ввода десятичную дробь?

Можно ли иметь десятичные пиксели?

У вас не может быть доли пикселя, но для всех других измерений, которые в конечном итоге преобразуются в пиксели, вы можете использовать десятичные разряды. Однако могут возникать ошибки округления, когда при округлении используется больше пикселей, чем 100 % (например, 33 %, 34 % и 33 % вместе при определенных размерах экрана могут заполнять один пиксель более 100 %).

Как сделать счетчик в CSS?

Чтобы использовать счетчик, его необходимо сначала инициализировать значением со свойством counter-reset. Затем значение счетчика может быть увеличено или уменьшено с помощью свойства counter-increment. Текущее значение счетчика отображается с помощью функции counter() или counters(), обычно в свойстве содержимого псевдоэлемента.

Как вводить числа в HTML?

определяет поле для ввода числа. Используйте следующие атрибуты для указания ограничений: max — указывает максимально допустимое значение.

Как добавить запятую к числу в HTML?

Метод format()этого объекта можно использовать для возврата строки с числом в указанной локали и параметрах форматирования.Это отформатирует число с запятыми в тысячных долях и вернет строку с отформатированным числом.

Читайте также:  Unable to open debugger port java io ioexception handshake failed connection prematurally closed

CSS , тип данные представляет собой число, являющийся или целое число или число с дробным компонентом.

Syntax

Interpolation

При анимации значения типа данных CSS интерполируются как реальные числа с плавающей запятой. Скорость интерполяции определяется функцией синхронизации, связанной с анимацией.

Examples

Valid numbers

12 A raw integer> is also a number>. 4.01 Positive fraction -456.8 Negative fraction 0.0 Zero +0.0 Zero, with a leading + -0.0 Zero, with a leading - .60 Fractional number without a leading zero 10e3 Scientific notation -3.4e-2 Complicated scientific notation

Invalid numbers

12. Decimal points must be followed by at least one digit. +-12.2 Only one leading +/- is allowed. 12.1.1 Only one decimal point is allowed.

Specifications

Источник

Форматирование чисел (десятичных знаков, разделителей тысяч и т. Д.) С помощью CSS

Можно ли форматировать числа с помощью CSS? То есть: десятичные разряды, десятичный разделитель, разделитель тысяч и т.д.

Вы не можете, но вы действительно должны быть в состоянии. В конце концов, 50 000, 50000 или 50 000,00 — это все те же «данные», они просто представлены по-другому, для чего и нужен CSS.

@MrMisterMan: Есть некоторые идеи, которые здесь можно найти : wiki.csswg.org/ideas/content-formatting#numbers Я, вероятно, буду преследоваться и обвиняться в цитировании «спецификаций» и получении надежд всех. И мне любопытно узнать, как здесь будет обрабатываться нечисловой текст.

Хотя я согласен с тем, что это было бы неплохо, число встроено в локализованную в противном случае страницу. То есть остальная часть страницы — английский, китайский или любой другой язык, и цифры должны соответствовать IMO этой локализации. Почему они должны быть локализованы отдельно от остальной части страницы .

9 ответов

Ну, для любых чисел в Javascript я использую следующий:

var a = "1222333444555666777888999"; a = a.replace(new RegExp("^(\\d)(\\d)", "g"), "$1 $2").replace(/(\d)+?/gi, "$1 ").trim(); 

и если вам нужно использовать любой другой разделитель в качестве запятой, например:

var sep = ","; a = a.replace(/\s/g, sep); 
function numberFormat(_number, _sep) < _number = typeof _number != "undefined" && _number >0 ? _number : ""; _number = _number.replace(new RegExp("^(\\d)(\\d)", "g"), "$1 $2").replace(/(\d)+?/gi, "$1 ").trim(); if(typeof _sep != "undefined" && _sep != " ") < _number = _number.replace(/\s/g, _sep); >return _number; > 

Мне это нравится. Но мне нужно было также преобразовать число в строку перед заменой. Вы не можете сделать замену на номер.

перед вызовом _number.replace мы должны убедиться, что это строка типа _number = typeof _number != «undefined» && _number > 0 ? String(_number) : «»; или иначе вы получите ошибку _number.replace не определен или не является функцией

Рабочая группа CSS опубликовала проект в Форматирование содержимого в 2008 году. Но ничего нового прямо сейчас.

Вероятно, лучший способ сделать это — это комбо для установки диапазона с классом, обозначающим ваше форматирование, а затем использовать JQuery.each для форматирования на пролетах при загрузке DOM.

Нет, вы должны использовать javascript, как только он находится в DOM, или отформатируйте его с помощью серверной части сервера (PHP/ruby ​​/python и т.д.)

Формат чисел является предметом контента, таким как текст контента или другие нотационные проблемы (например, нотации даты, которые зависят от языка). Таким образом, форматирование чисел является локализацией и должно обрабатываться при создании контента. Выполнение этого в JavaScript имеет смысл для той части контента, которая генерируется JavaScript.

Я полностью согласен с этим. Вот почему я написал это в своем ответе. Наверное, следовало бы больше подчеркнуть это.

Это может быть либо контент, либо презентация. Возьмем CSS rtl , который показывает тот же контент по-другому: должен ли он также обрабатываться на стороне сервера?

Не ответ, а интерес. Несколько лет назад я отправил предложение

Я использую функцию PHP number_format() и Узкое No- break Space (   ). Он часто используется как недвусмысленный разделитель тысяч.

echo number_format(200000, 0, "", " "); 

Поскольку у IE8 есть некоторые проблемы с отображением узкого пространства без разрыва, я изменил его для SPAN

echo "".number_format(200000, 0, "", " ").""; 

К сожалению, это на стороне сервера, есть небольшое попадание в процессор, нам нужна возможность редактировать маску html / css. Одевание и рендеринг должны быть на стороне клиента, если мы не обслуживаем PDF?

Я не думаю, что ты можешь. Вы можете использовать number_format(), если вы кодируете в PHP. И другие языки программирования также имеют функцию форматирования чисел.

Вы не можете использовать CSS для этой цели. Я рекомендую использовать JavaScript, если он применим. Взгляните на это для получения дополнительной информации: JavaScript-эквивалент printf/string.format

Также, как сказал Петр, вы можете справиться с этим на стороне сервера, но это полностью зависит от вашего сценария.

Вы можете использовать библиотеку тегов Jstl для форматирования для страниц JSP

JSP Page //import the jstl lib  

Formatted Number (1): " type="currency"/>

Formatted Number (2): " />

Formatted Number (3): " />

Formatted Number (4): " />

Formatted Number (5): " />

Formatted Number (6): " />

Formatted Number (7): " />

Formatted Number (8): " />

Отформатированный номер (1): £ 120,000.23

Отформатированный номер (2): 000.231

Отформатированный номер (3): 120 000.231

Отформатированный номер (4): 120000.231

Отформатированный номер (5): 023%

Отформатированный номер (6): 12 000 023 0900000000%

Отформатированный номер (7): 023%

Отформатированный номер (8): 120E3

Источник

zanarmstrong / d3formatting.css

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

body
margin : 20 px 0 px 0 px 50 px ;
>
. formattext
text-align : right;
>
. formatresult
text-align : left;
padding-left : 40 px ;
>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

// define variables
var formatlist = [ «» , «s» , «,%» , «+,%» , «,.1%» , «.4r» , «.4f» , «.4n» , «.3n» , «,d» , «,.0f» , «.0f» , «.0e» , «.1e» ] ;
var userNum = document . getElementById ( «userNum» ) ;
var colorLow = ‘blue’
var colorHigh = ‘red’
// add listener to call formatter function when user changes the number
userNum . addEventListener ( «input» ,
function ( e )
myFormats . changeNumber ( userNum . value ) ;
> ,
false
) ;
// need way to update list
formatSpecifier . addEventListener ( «change» ,
function ( e )
myFormats . addToList ( formatSpecifier . value ) ;
> ,
false
) ;
// create a little color scale function to make the output look pretty
function setColorScale ( max )
return d3 . scale . linear ( )
. domain ( [ 0 , max ] )
. interpolate ( d3 . interpolateRgb )
. range ( [ colorLow , colorHigh ] )
>
// construct code/text pairs from list of formats I could use
var constructFormatObject = function ( mylist )
var types = [ ] ;
mylist . forEach ( function ( d )
types . push (
code : d3 . format ( d ) ,
text : ‘d3.format(«‘ + d + ‘»)’
> )
> )
return types
>
var myFormats = new ShowFormats (
formatlist ,
0 ) ;

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

// set up showformats constructor
ShowFormats = function ( formatList , number )
// list of format specifiers to show
this . formatList = formatList ;
this . formatObject = constructFormatObject ( formatList ) ;
this . dataset = Array . apply ( 0 ,
Array ( this . formatObject . length ) ) . map ( function ( x , y )
return y ;
> ) ; ;
// number to format
this . number = number ;
this . colorScale = setColorScale ( this . dataset . length )
var self = this ;
// set up defaults
this . selection = d3 . select ( «tbody» ) . selectAll ( «tr» )
. data ( this . dataset )
. enter ( )
. append ( «tr» ) ;
this . selection
. append ( «td» )
. text ( function ( d )
return self . formatObject [ d ] . text ;
> )
. style ( «color» , function ( d )
return self . colorScale ( d )
> )
. attr ( «class» , «formattext» ) ;
this . selection
. append ( «td» )
. text ( function ( d )
return self . formatObject [ d ] . code ( self . number ) ;
> )
. style ( «color» , function ( d )
return self . colorScale ( d )
> )
. attr ( «class» , «formatresult» ) ;
>
ShowFormats . prototype . changeNumber = function ( number )
this . number = number ;
this . updateFormats ( ) ;
>
ShowFormats . prototype . addToList = function ( specifier )
this . formatList . unshift ( specifier )
this . formatObject = constructFormatObject ( this . formatList ) ;
// update dataset array w/ new length
this . dataset = Array . apply ( 0 ,
Array ( this . formatObject . length ) ) . map ( function ( x , y )
return y ;
> ) ; ;
this . updateFormats ( ) ;
>
ShowFormats . prototype . tdtextStyling = function ( selection )
selection . text ( function ( d )
return self . formatObject [ d ] . text ;
> )
. style ( «color» , function ( d )
return self . colorScale ( d )
> )
. attr ( «class» , «formattext» ) ;
>
ShowFormats . prototype . tdcodeStyling = function ( selection )
selection . text ( function ( d )
return self . formatObject [ d ] . code ( self . number ) ;
> )
. style ( «color» , function ( d )
return self . colorScale ( d )
> )
. attr ( «class» , «formatresult» ) ;
>
ShowFormats . prototype . updateFormats = function ( )
self = this ;
// bind with current dataset
this . selection = d3 . selectAll ( «tbody» ) . selectAll ( «tr» )
. data ( self . dataset ) ;
// enter elements
var k = this . selection . enter ( ) . append ( «tr» )
k . append ( «td» )
. call ( self . tdtextStyling ) ;
k . append ( «td» )
. call ( self . tdcodeStyling ) ;
// update elements
this . selection
. selectAll ( «td» )
. text ( function ( d , i )
if ( i == 0 )
return self . formatObject [ d ] . text ;
>
if ( i == 1 )
return self . formatObject [ d ] . code ( self . number ) ;
>
> )
. style ( «color» , function ( d )
return self . colorScale ( d )
> )
. attr ( «class» , function ( d , i )
if ( i == 0 )
return «formattext»
> else
return «formatresult»
>
> )
>

Источник

Оцените статью