সিএসএস সহ সংখ্যা (দশমিক স্থান, কয়েক হাজার বিভাজক ইত্যাদি) ফর্ম্যাট করা


121

সিএসএস দিয়ে সংখ্যা বিন্যাস করা সম্ভব? এটি হল: দশমিক স্থান, দশমিক বিভাজক, হাজার হাজার বিভাজক ইত্যাদি


61
আপনি পারবেন না তবে আপনার সত্যই সক্ষম হওয়া উচিত। সর্বোপরি, ৫০,০০০ বা ৫০০০০ বা ৫০,০০০.00 সমস্ত একই 'ডেটা' এগুলি কেবল আলাদাভাবে উপস্থাপন করা হয়েছে যা সিএসএসের জন্য।
punkrockbuddyholly

4
@ মিঃমিস্টারমন: এখানে প্রায় কিছু ধারণা ছড়িয়ে দেওয়া হচ্ছে: উইকি.সি.এস.ইউ.জি.আরএইডিস / কনটেন্ট-ফর্ম্যাটিং নাম্বার আমি সম্ভবত হয়রানির শিকার হতে চলেছি এবং "স্পেসিফিকেশন" উল্লেখ করে এবং সবার প্রত্যাশা প্রকাশ করার অভিযোগ এনেছি । এবং আমার জন্য, আমি জানতে আগ্রহী যে এখানে কীভাবে অ-সংখ্যাযুক্ত পাঠ্য পরিচালনা করা হবে।
বোল্টক্লক

3
যদিও আমি সম্মত হই যে এটি থাকা ভাল হবে, সংখ্যাটি অন্যথায় স্থানীয় পৃষ্ঠায় এমবেড করা আছে। অর্থাত, পৃষ্ঠাটির বাকী অংশটি ইংরেজি, চাইনিজ বা অন্য যে কোনও ভাষা, এবং সংখ্যাগুলি আইএমওর সেই স্থানীয়করণ অনুসারে হওয়া উচিত। এগুলি কেন বাকী পৃষ্ঠা থেকে আলাদা করা হবে ...?
ছদ্মবেশ দিন

@ ডেসেজ: আপনি ঠিক বলেছেন। "স্থানীয়করণ সিএসএস" এর পক্ষে থাকা সম্ভব
ডন

1
ইন্টেল.নাম্বারফোর্ম্যাট এমডিএন-রেফ
জোশুয়া বাবু

উত্তর:


12

আপনি ব্যবহার করতে পারেন Number.prototype.toLocaleString()। এটি অন্যান্য সংখ্যা ফর্ম্যাটের জন্যও ফর্ম্যাট করতে পারে, যেমন লাতিন, আরবী ইত্যাদি,

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString


2
সর্বাধিক আধুনিক এবং মার্জিত পদ্ধতির, এবং যেহেতু এটি এখনও সিএসএসের সাথে অর্জন করা অসম্ভব তাই 1 নম্বর উত্তর হওয়া উচিত!
এফএমএ


23

ঠিক আছে, জাভাস্ক্রিপ্টে যে কোনও সংখ্যার জন্য আমি পরেরটি ব্যবহার করি:

var a = "1222333444555666777888999";
a = a.replace(new RegExp("^(\\d{" + (a.length%3?a.length%3:0) + "})(\\d{3})", "g"), "$1 $2").replace(/(\d{3})+?/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{" + (_number.length%3? _number.length%3:0) + "})(\\d{3})", "g"), "$1 $2").replace(/(\d{3})+?/gi, "$1 ").trim();
    if(typeof _sep != "undefined" && _sep != " ") {
        _number = _number.replace(/\s/g, _sep);
    }
    return _number;
}

1
ধন্যবাদ। খাঁটি সিএসএস সমাধান নয়, তবে কাজটি করে!
ডন

আমি এটা পছন্দ করি. তবে প্রতিস্থাপনের আগে আমারও সংখ্যাটি স্ট্রিংয়ে রূপান্তর করতে হবে। আপনি একটি নম্বর প্রতিস্থাপন করতে পারবেন না।
মার্ডোক ২

কল করার আগে _number.replaceআমাদের নিশ্চিত করতে হবে এটি এটির মতো একটি স্ট্রিং _number = typeof _number != "undefined" && _number > 0 ? String(_number) : "";বা অন্যথায় আপনি একটি ত্রুটিটি _number.replaceসংজ্ঞায়িত বা কোনও ফাংশন নয় তা পেয়ে
যাবেন

3
কেন কেবল ব্যবহার করবেন না: (123456789) .toLocaleString ('en-GB') বা এর মতো?
জোহানেস

16

সম্ভবত এটি করার সর্বোত্তম উপায় হ'ল একটি ক্লাসের সাথে আপনার ফরম্যাটিংটি চিহ্নিত করে স্প্যান সেট করার কম্বো তখন জিকিউরি ব্যবহার করুন the


9

না, আপনি জাভাস্ক্রিপ্ট একবার DOM এ ব্যবহার করতে হবে বা আপনার ভাষা সার্ভার-সাইডের (পিএইচপি / রুবি / পাইথন ইত্যাদি) মাধ্যমে এটি ফর্ম্যাট করতে হবে


5
সংখ্যার ফর্ম্যাট হ'ল একটি বিষয়বস্তু যেমন কন্টেন্টের পাঠ্য বা অন্যান্য উল্লেখযোগ্য সমস্যা (যেমন, তারিখের নোটেশন, যা ভাষা নির্ভর)। সুতরাং ফর্ম্যাটিং নম্বরগুলি স্থানীয়করণ এবং সামগ্রী তৈরি হওয়ার সময় পরিচালনা করা উচিত। এটি জাভাস্ক্রিপ্টে করা জাভাস্ক্রিপ্ট-উত্পাদিত সামগ্রীর অংশের জন্য অর্থবোধ করে।
জুলকা কে। কোরপেলা

আমি এর সাথে পুরোপুরি একমত সে কারণেই আমি আমার উত্তরে এটি লিখেছিলাম। সম্ভবত এটি আরও চাপ দেওয়া উচিত ছিল।
মেরেক

এটি সামগ্রী বা উপস্থাপনা হতে পারে। সিএসএস নিন rtl, যা একই বিষয়বস্তুকে অন্যভাবে দেখায়: এটিও কি সার্ভার-সাইড হিসাবে আচরণ করা উচিত?
ডন

6

উত্তর নয়, আগ্রহের পারহপ্স। আমি কয়েক বছর আগে সিএসএস ডব্লিউজির কাছে একটি প্রস্তাব পাঠিয়েছিলাম । তবে কিছুই হয়নি। প্রকৃতপক্ষে যদি তারা (এবং ব্রাউজার বিক্রেতারা) এটিকে একটি আসল বিকাশকারী উদ্বেগ হিসাবে দেখত, সম্ভবত বলটি ঘূর্ণায়মান শুরু হতে পারে?


2
অবদান রাখার জন্য ধন্যবাদ। আমি আশা করি একদিন এটি ধরা পড়ে।
এডিজেঙ্কস

4

যদি এটি সাহায্য করে ...

আমি পিএইচপি ফাংশন number_format()এবং ন্যারো নো-ব্রেক ব্রেক স্পেস (  ) ব্যবহার করি। এটি প্রায়শই একটি স্পষ্ট হাজার হাজার বিভাজক হিসাবে ব্যবহৃত হয়।

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

যেহেতু আইই 8 এর ন্যারো নো-ব্রেক-স্পেস রেন্ডার করতে কিছু সমস্যা রয়েছে, তাই আমি এটি স্প্যানের জন্য পরিবর্তন করেছি

echo "<span class='number'>".number_format(200000, 0, "", "<span></span>")."</span>";
.number SPAN{
    padding: 0 1px; 
}

দুর্ভাগ্যক্রমে এটি সার্ভার সাইড, একটি সামান্য সিপিইউ হিট আছে, আমাদের একটি এইচটিএমএল / সিএসএস সম্পাদনা মাস্ক দক্ষতা প্রয়োজন। ড্রেসিং এবং রেন্ডারিং ক্লায়েন্টের পাশে হওয়া উচিত যদি না আমরা পিডিএফ পরিবেশন করি?
mckenzm

2

আপনি এই উদ্দেশ্যে সিএসএস ব্যবহার করতে পারবেন না। আমি জাভাস্ক্রিপ্ট প্রয়োগ করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য এটি একবার দেখুন: জাভাস্ক্রিপ্ট মুদ্রণ / স্ট্রিং.ফর্ম্যাট সমান

পেট্র যেমন উল্লেখ করেছেন আপনি এটি সার্ভার-সাইডে পরিচালনা করতে পারেন তবে এটি সম্পূর্ণ আপনার দৃশ্যের উপর নির্ভর করে।


2

আমি মনে করি না আপনি পারবেন। আপনি পিএইচপি-তে কোডিং দিলে আপনি নাম_ফর্ম্যাট () ব্যবহার করতে পারেন । এবং অন্যান্য প্রোগ্রামিং ভাষাগুলিতেও সংখ্যা বিন্যাসকরণের জন্য একটি কার্য রয়েছে function


"ব্যাকএন্ডে" প্রদর্শনের উদ্দেশ্যে ডেটা পরিবর্তনের জন্য বিএডি অনুশীলন।
মহিষ

1

আপনি জেএসপি পৃষ্ঠাগুলির বিন্যাসের জন্য জেএসটিএল ট্যাগ লাইব্রেরি ব্যবহার করতে পারেন

JSP Page
//import the jstl lib
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>

<c:set var="balance" value="120000.2309" />
<p>Formatted Number (1): <fmt:formatNumber value="${balance}" 
        type="currency"/></p>
<p>Formatted Number (2): <fmt:formatNumber type="number" 
        maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (3): <fmt:formatNumber type="number" 
        maxFractionDigits="3" value="${balance}" /></p>
<p>Formatted Number (4): <fmt:formatNumber type="number" 
        groupingUsed="false" value="${balance}" /></p>
<p>Formatted Number (5): <fmt:formatNumber type="percent" 
        maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (6): <fmt:formatNumber type="percent" 
        minFractionDigits="10" value="${balance}" /></p>
<p>Formatted Number (7): <fmt:formatNumber type="percent" 
        maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (8): <fmt:formatNumber type="number" 
        pattern="###.###E0" value="${balance}" /></p>

ফলাফল

ফর্ম্যাট সংখ্যা (1): ,000 120,000.23

ফর্ম্যাট সংখ্যা (2): 000.231

ফর্ম্যাট সংখ্যা (3): 120,000.231

ফর্ম্যাট সংখ্যা (4): 120000.231

ফর্ম্যাট সংখ্যা (5): 023%

ফর্ম্যাট সংখ্যা (6): 12,000,023.090000000000

ফর্ম্যাট সংখ্যা (7): 023%

ফর্ম্যাট সংখ্যা (8): 120E3

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.